In computer systems, a notification may be in the form of a signal from a program that indicates to a user that a specified event has occurred. Such a notification may contain various elements of text, sound, and graphics. Other properties may also be included with the notification, such as priority, the person who sent the notification (for channels such as e-mail or instant messaging), and when the notification expires. Notifications may also include some elements of code such that the user can interact with the notification and launch arbitrary code (e.g., clicking on buttons or text within the notification that can cause new programs to launch or actions to be taken on programs that are currently running).
An operating system may create notifications to let a user know about network connectivity and updates. An instant messaging program that uses “contact lists” may draw notifications on the screen to let the user know what is happening with the contact list or when a contact initiates an instant message conversation. Other programs may provide similar notifications that draw in similar areas of the display. One issue with these types of notifications is that they are not generally aware of the other notifications, thus sometimes leading to notifications being drawn on top of other notifications.
Another issue with existing notification systems is that they may cause notifications to be delivered inappropriately, or at inappropriate times. For example, for a user providing a full screen presentation, it may be inappropriate to have other programs draw notifications on the screen during the presentation. An example of a program that might draw such inappropriate notifications is an instant messaging program that runs in the background of the operating system and draws such notifications when contacts in the contact list sign on or initiate an instant message. This type of “interruption” during a presentation may be undesirable to a user.
Furthermore, when a notification is sent at an inappropriate time, the sender of a notification is often unaware that the timing was inappropriate. In known systems, the senders of notifications are typically not provided with adequate feedback regarding the timing of the sending of the notifications. In addition, no other programs or processes are typically provided with any information about the notifications.
The embodiment of the present invention is related to providing a system and method that overcome the foregoing and other disadvantages. More specifically, the embodiment of the present invention is related to a system and method for public consumption of communication events between arbitrary processes.